package com.wnxy.hutool;

import cn.hutool.jwt.JWT;
import cn.hutool.jwt.JWTUtil;
import cn.hutool.jwt.signers.JWTSigner;
import cn.hutool.jwt.signers.JWTSignerUtil;

import java.util.HashMap;
import java.util.Map;

public class App {
    public static void main(String[] args) {
        // 创建map集合，封装jwt中的数据，作为jwt的载荷
        Map<String, Object> payload = new HashMap<>();
        payload.put("userId", "100");
        payload.put("uname", "Jack");

        // 密钥，不能告诉别人
        String secret = "woniuxy112222xxpp";
        // 创建签名器
        JWTSigner jwtSigner = JWTSignerUtil.hs256(secret.getBytes());

        // 1 生成token
        String token = JWTUtil.createToken(payload, jwtSigner);
        System.out.println(token);

        // 2 校验token
        boolean verify = JWTUtil.verify(token, jwtSigner);

        if (verify) {
            //3  解析token
            JWT jwt = JWTUtil.parseToken(token);
            String userId = (String) jwt.getPayload("userId");
            String uname = (String) jwt.getPayload("uname");
            System.out.println("userId = " + userId);
            System.out.println("uname = " + uname);
        }
    }
}
